package org.jpropelleralt.path;

import org.jpropelleralt.box.Box;
import org.jpropelleralt.node.Node;
import org.jpropelleralt.ref.Ref;
import org.jpropelleralt.transformer.Transformer;

/**
 * The type of {@link Transformer} required a step in a {@link Path} taken
 * from {@link Ref} to {@link Ref}. This is also suitable for the final
 * step of a {@link PathIterator} to its {@link PathIterator#destination()}.
 * 
 * @param <S>		The type of {@link Box} transformed from - often a {@link Node}
 * @param <T>		The type of value in the {@link Ref} transformed to
 */
public interface PathStep<S, T> extends Transformer<S, Ref<T>>{
}
